home *** CD-ROM | disk | FTP | other *** search
- program reqzip;
-
- {$M,2048,0,0}
- uses dos;
-
- var
- requ,messu,vastaus:text;
- mrivi,rrivi,otsikko:string;
- mailpath,vastpath:string[70];
- kutsu:string[6];
- f,laskuri:integer;
- s:pathstr;
-
- {--------Ohjelmassa ei ole pascalin ajatuksen vastaisesti proseduureja------}
- {--------Ajatus on se, että niin ohjelmasta tulisi mahdollisimman vähän-----}
- {--------muistia käyttävä T.S. proceduurimuuttujat jäävät pois--------------}
-
- begin
- if paramcount<>1 then halt;
-
- {-----------------------------------------------------------------------------}
- {Luetaan init.srvstä oikeat polut käyttöön}
-
- assign(messu,'init.srv');
- reset(messu);
- laskuri:=0;
- repeat
- begin
- readln(messu,rrivi);
- if rrivi[1]<>'#' then inc(laskuri)
- end;
- until laskuri=6;
-
- if rrivi[length(rrivi)]<>'\' then rrivi:=rrivi+'\';
- mailpath:=rrivi;
-
- repeat
- begin
- readln(messu,rrivi);
- if rrivi[1]<>'#' then inc(laskuri)
- end;
- until laskuri=9;
- if rrivi[length(rrivi)]<>'\' then rrivi:=rrivi+'\';
- vastpath:=rrivi;
- close(messu);
-
- {-----------------------------------------------------------------------------}
- {Avataan requtiedosto ja haetaan halutut numerot, jotka ovat otsikkorivillä}
- {Otsikkorivi on tiedoston toinen rivi. Lähettäjän kutsu ekariviltä ! }
-
-
- assign(requ,paramstr(1));
- reset(requ);
-
-
- readln(requ,rrivi);
- f:=pos('<',rrivi)+1;
- kutsu:='';
- repeat
- begin
- inc(f);
- if rrivi[f]<>' ' then kutsu:=kutsu+rrivi[f];
- end;
- until ((rrivi[f]=' ') or (f=length(rrivi)));
- readln(requ,otsikko);
- close(requ);
-
-
- {-----------------------------------------------------------------------------}
- {Alustetaan vastaus joka on REkutsu. Aletaan hakea viestejä numeron perusteella}
-
-
- assign(vastaus,vastpath+'!-'+kutsu);
- rewrite(vastaus);
-
- repeat
- rrivi:='';
- laskuri:=1;
-
- begin
- {---------------------tyhjät pois numeron edestä --------------------------}
- repeat
- if otsikko[laskuri]=' ' then inc(laskuri);
- until otsikko[laskuri]<>' ';
-
-
-
- {--------------------otetaan numero spaceen asti---------------------------}
- repeat
- if otsikko[laskuri]<>' ' then
- begin
- rrivi:=rrivi+otsikko[laskuri];
- inc(laskuri);
- end;
- until ((otsikko[laskuri]=' ') or (laskuri=length(otsikko)+1));
-
-
- otsikko:=copy(otsikko,laskuri,length(otsikko)-laskuri+1);
-
-
- {--------------------jos saatiin joku messun numero-------------------------}
- {------------------lisätään etunollat ja haetaan file-----------------------}
- if rrivi<>'' then
-
- begin
- if length(rrivi)<6 then
- for f:=1 to 6-length(rrivi) do
- rrivi:='0'+rrivi;
-
-
- s:=fsearch('M_'+rrivi+'.MES',mailpath+'mail'+rrivi[6]+'\');
-
- if s='' then writeln(vastaus,'Viestiä ',rrivi,' ei löydy !')
- else
- begin
- assign(messu,fexpand(s));
- reset(messu);
- writeln(vastaus,'----- Viesti: #',rrivi,' ------');
-
- {--------jos messu löytyi kopioidaan muut paitsi 'R:'-rivit vastaukseen----}
- while not eof (messu) do
-
- begin
- readln(messu,mrivi);
- if copy(mrivi,1,2)<>'R:' then
- writeln(vastaus,mrivi);
- end;
-
- writeln(vastaus,'----------------------------');
- writeln(vastaus);
- writeln(vastaus);
- writeln(vastaus);
-
- close(messu);
- end;
- end;
- end;
-
- {----kunnes koko otsikkorivi on skannattu läpi ---------------------------}
- until otsikko='';
- close(vastaus);
-
- {----jos vanha zip löytyy, tuhotaan se ------------------------------------}
- S:=fsearch('!-'+kutsu+'.zip',vastpath);
- if s<>'' then
- begin
- assign(messu,fexpand(s));
- erase(messu);
- end;
-
- {----pakataan vastaus ja tuhotaan pakkaamaton vastaus----------------------}
- S:=fsearch('pkzip.exe',getenv('path'));
- if s<>'' then
- begin
- swapvectors;
- exec(fexpand(s),'-m '+vastpath+'!-'+kutsu+' '+vastpath+'!-'+kutsu);
- swapvectors;
- end;
-
- erase(requ);
- end.